home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / misc / amag / AM95022.lha / c++-kurs-2 / Listing1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-29  |  787 b   |  39 lines

  1. /* Listing1: © Clemens Marschner, 1994
  2.  * virtuelle Funktionen  */
  3.  
  4. #include <stream.h>
  5.  
  6. struct Basis {
  7.     int x;
  8.  
  9.     virtual void Print() { cout << x << '\n'; }
  10.     // Funktion ist virtuell
  11.  
  12.     Basis(int i) : x(i) {}
  13.     // Der Konstruktor initialisiert nur x. Elementare 
  14.     // Typen besitzen ebenso Konstruktoren wie Klassen.
  15. };
  16.  
  17. struct Abgeleitet : Basis {
  18.     char *str;
  19.  
  20.     void Print() { cout << str << '\n'; }
  21.     Abgeleitet(char* strp) : str(strp), Basis(0) {}
  22.     Abgeleitet() : Basis(0) {}
  23. };
  24.  
  25. void main(void)
  26. {
  27.     Basis b(42);
  28.     Abgeleitet a("Magische Zahl");
  29.     Basis *x[2];
  30.     x[0] = &b;
  31.     x[1] = &a;  
  32.     // Das Array besteht nun aus einem Gemisch aus
  33.     // den Klassen Basis und Abgeleitet
  34.     for(int i = 0; i<2; i++) {
  35.         x[i]->Print();
  36.     }
  37. }
  38.     
  39.